home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
t_os
/
hk
/
bassrc
/
hk4in.bas
< prev
next >
Wrap
BASIC Source File
|
1993-07-08
|
31KB
|
813 lines
10 '------------------------------------------------------------------
20 ' HK4IN.BAS Copyrigit(C) T.Komura / 家計簿システム /
30 ' / Version 4 /
31 ' Version 4.0 1992.06.20-1992.06.28 / 入力・編集プログラム /
32 ' / /
100 '------------------------------------------------------------------
150 DIM CFI$(15)
170 GOSUB *CONFIGファイルチェック
190 '
193 VERN$="1.0" 'バージョンNo.
200 *初期設定:'--------------------------------------------------------
210 CMD$="CD "+PRGDRV$:SHELL CMD$
220 SCREEN@ 0 :COLOR 7,0,0,4:CLS:CONSOLE 0,24,0:MOUSE 0
230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
235 DIM L_W$(80)
240 LOAD@ FMBDRV$+"\FMP.FMB"
250 PLAY "@30T150V6":DATX$=DATE$
260 DIM XB1(3,25),XB2(3,25),YB1(3,25),YB2(3,25),BST(3,25)
270 DIM DYN$(16),DRM$(16),DYN(16)
300 INTERVAL 1 :'プログラム先頭
310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭
320 GOSUB *ボタン座標読み取り
330 'CLS:COLOR 7:PRINT int((int(((630-234+1)+7)/8)*(97-71+1)*4+8-1)/8)
350 DIM CUTN#(795)
370 ON ERROR GOTO *ERROR
380 '
1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
1005 GOSUB *表紙表示:CONSOLE 0,24,2
1010 MESN=18:GOSUB *SNDMSG
1015 MESN=1:GOSUB *MESDSP
1020 GOSUB *本日の日付
1030 GOSUB *日付表示
1040 MOUSE 1,320,64,1
1050 GOSUB *指定日データ表示
1100 *メイン選択
1110 IF MES2OFF=0 THEN MESN=2:GOSUB *MESDSP
1130 SWPASS=1:G=1:GOSUB *マウスボタン選択
1145 IF SWNO>=10 THEN *SSEL
1150 ON SWNO GOTO *S01,*S02,*S03,*S04,*S05,*S06,*S07,*S08,*S09
1160 GOTO 1100:STOP
3490 '
3500 *S01:' 1年先 ---------------------------------------------------
3505 YDEF=+1:MDEF= 0:DDEF= 0: GOTO *YMDRNEW
3510 *S02:' 1年前 ---------------------------------------------------
3515 YDEF=-1:MDEF= 0:DDEF= 0: GOTO *YMDRNEW
3520 *S03:' 1月先 ---------------------------------------------------
3525 YDEF= 0:MDEF=+1:DDEF= 0: GOTO *YMDRNEW
3530 *S04:' 1月前 ---------------------------------------------------
3535 YDEF= 0:MDEF=-1:DDEF= 0: GOTO *YMDRNEW
3540 *S05:' 1日先 ---------------------------------------------------
3545 YDEF= 0:MDEF= 0:DDEF=+1: GOTO *YMDRNEW
3550 *S06:' 1日前 ---------------------------------------------------
3555 YDEF= 0:MDEF= 0:DDEF=-1: GOTO *YMDRNEW
3560 '
3570 *YMDRNEW
3572 SWNOX=SWNO
3575 G=1:B=SWNOX:BST(G,B)=1:GOSUB *ボタンON_OFF表示
3580 IF IPF=0 THEN 3610
3585 MESN=4:GOSUB *MESDSP
3590 CMES$="家計簿データ保存実行":GOSUB *確認
3600 IF SWNO=2 THEN 3610
3605 GOSUB *家計簿データ保存
3610 GOSUB *年月日変更
3620 GOSUB *日付表示
3650 MESN=6:GOSUB *MESDSP
3660 GOSUB *指定日データ表示
3670 IPF=0
3680 G=1:B=SWNOX:BST(G,B)=0:GOSUB *ボタンON_OFF表示
3690 GOTO *メイン選択
3695 '
3700 *SSEL:'------------------------------------------------------------
3720 G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
3730 IPNO=B-10
3740 IF IPNO=0 THEN GOSUB *出来事入力 :GOTO 3900
3760 GOSUB *金額・内容入力:GOTO 3900
3900 IPF=1
3910 G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
3980 MES2OFF=0
3990 GOTO *メイン選択
3995 '
4000 *S07:'取消 --------------------------------------------------------
4010 G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
4020 MESN=6:GOSUB *MESDSP
4030 GOSUB *指定日データ表示
4035 IPF=0
4040 G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
4050 GOTO *メイン選択
4060 '
4500 *S08:'保存 --------------------------------------------------------
4510 GOSUB *家計簿データ保存
4580 GOTO *メイン選択
4590 '
8940 '
9000 *S09:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
9020 G=1:B=9:BST(G,B)=1:GOSUB *ボタンON_OFF表示
9030 IF IPF=0 THEN 9110
9035 MESN=4:GOSUB *MESDSP
9040 CMES$="家計簿データ保存実行":GOSUB *確認
9045 IF SWNO=2 THEN 9110
9050 GOSUB *家計簿データ保存
9060 '
9110 MESN=9:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
9120 INTERVAL OFF
9130 'MOUSE 5:GOSUB *FADEOUT
9150 CHAIN "hk4main.bas"
9160 '
9900 '-------------------------------------------------------------------
9910 ' GENERAL SUB ROUTINE
9920 '-------------------------------------------------------------------
10000 *CHR1IN:'////////// 1文字入力
10010 A$=INKEY$:IF A$="" THEN 10010
10020 A=INSTR(C$,A$)
10030 IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
10040 RETURN
10050 '
10060 '
10070 *MESDSP:'////////// メッセージ表示
10080 RESTORE *MESDAT
10090 FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
10100 LOCATE 0,YM:COLOR CB,CB:PRINT SPACE$(79);
10110 LOCATE XM,YM:COLOR CM,CB:PRINT MES$;
10120 'IF BM=1 THEN PLAY "L4O4A"
10130 RETURN
10140 '
10200 *MESDAT:'////////// メッセージデータ
10205 ' XM, YN, CM, CB, BM
10210 DATA 2, 23, 5, 0, 1 :'--- 01
10215 DATA " - HK version 4.0 - 記入・編集 [HKIN.BAS L10]"
10220 DATA 2, 23, 7, 0, 0 :'--- 02
10225 DATA "適当なボタンをマウスカーソルで押して(左クリック)ください。"
10230 DATA 2, 23, 6, 0, 0 :'--- 03
10235 DATA "ディスクにこの月の家計簿ファイルがありません。新しくファイルを作りますか?"
10240 DATA 2, 23, 6, 0, 1 :'--- 04
10245 DATA "家計簿データが保存されていません! 保存する--[OK] 保存しない--[NG]"
10250 DATA 2, 23, 4, 0, 1 :'--- 05
10255 DATA "★家計簿ファイル新規作成中 !!"
10260 DATA 2, 23, 4, 0, 1 :'--- 06
10265 DATA "★家計簿ファイル読み込み中 !!"
10270 DATA 2, 23, 6, 0, 0 :'--- 07
10275 DATA "家計簿ファイルが無いため、この月のデータは読み込みできません!"
10280 DATA 2, 23, 7, 0, 0 :'--- 08
10285 DATA "このデータを家計簿ファイルに書き込んでよろしいですか? [OK],[NG]"
10290 DATA 2, 23, 5, 0, 1 :'--- 09
10295 DATA " ★★★ しばらくお待ちください。"
10300 DATA 2, 23, 7, 0, 0 :'--- 10
10305 DATA "[ファイル記入・訂正] -- 出来事を記入してください。"
10310 DATA 2, 23, 7, 0, 0 :'--- 11
10315 DATA "[ファイル記入・訂正] -- 金額を記入してください。"
10320 DATA 2, 23, 7, 0, 0 :'--- 12
10325 DATA "[ファイル記入・訂正] -- 内容を記入してください。"
10330 DATA 2, 23, 4, 0, 1 :'--- 13
10335 DATA "★家計簿ファイル書き込み中"
10990 '
11000 *SNDMSG:' SAVE "SNDMSG.SUB",A
11005 IF SNDMF=0 THEN RETURN
11010 '・・・・・・・・・・・・・・・・・ サウンドメッセージ実行サブルーチン 1989.02.04
11020 ' 入力=MESN (メッセージNo.)
11030 '
11070 IF MESN>36 THEN *RETURN_SNDMSG
11080 RESTORE *MSGNAM
11090 FOR IMSG=1 TO MESN
11100 READ MSGD$
11110 NEXT IMSG
11120 MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
11130 LOAD@ MSGFN$,MSGD%
11140 PCMPLAY MSGD%
11150 *RETURN_SNDMSG :WAIT SWAIT:RETURN
11160 *MSGNAM :'////////// .SND File Name Data
11170 DATA "OHA1" :' 1 おはよう
11180 DATA "KONN" :' 2 こんにちわ
11190 DATA "KONBAN" :' 3 こんばんわ
11200 DATA "GOKRO1" :' 4 ごくろうさん
11210 DATA "GOKRO2" :' 5 ごくろうさま
11220 DATA "OTUKA" :' 6 お疲れさま
11230 DATA "OMATA" :' 7 おまたせ
11240 DATA "ARIGA2" :' 8 ありがとう
11250 DATA "RUNRUN" :' 9 るんるん
11260 DATA "DAMEDE" :' 10 だめでしょう
11270 DATA "IIDE1" :' 11 いいですか
11280 DATA "NANISI" :' 12 なにしてるの
11290 DATA "DAMEDA" :' 13 だめだめ
11300 DATA "OWARI" :' 14 終わりました
11310 DATA "SIBA" :' 15 しばらくお待ち下さい
11320 DATA "YOROSI" :' 16 よろしいですか
11330 DATA "TYANTO" :' 17 ちゃんとしなさい
11340 DATA "ERANDE" :' 18 選んでください
11350 DATA "KAKNIN" :' 19 確認して下さい
11360 DATA "NYURYO" :' 20 入力してください
11370 DATA "IRA" :' 21 いらっしゃいませ
11380 DATA "OYASUM" :' 22 おやすみ
11390 DATA "ARIGA3" :' 23 ありがとうございました
11400 DATA "TYOTO" :' 24 ちょっと待って
11410 DATA "OOKINA" :' 25 大きな間違い
11420 DATA "YAMETE" :' 26 やめて
11430 DATA "TIGAU" :' 27 ちがうよ
11440 DATA "PINPON" :' 28 ぴんぽーん
11450 DATA "BUU" :' 29 ぶー
11460 DATA "MOUII" :' 30 もういいよう
11470 DATA "DEKITA" :' 31 できたよー
11480 DATA "IIDE2" :' 32 いいですか(2)
11490 DATA "YOSI" :' 33 よしなさい
11500 DATA "OYOSI" :' 34 およしなさい
11510 DATA "YAMENA" :' 35 やめなさい
11520 DATA "GOMEN" :' 36 ごめん
11530 '
12000 '////////// 年月日入力 & 曜日表示
12010 '
12045 *週検索
12050 DATA "日",2,"月",0,"火",0,"水",0,"木",0,"金",0,"土",5
12060 GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
12080 RETURN
12090 '
12100 *YMDIN ' V2.0 1991.07.21
12110 LX=XYMD:LY=YYMD:LC=CYMD:LL=4:LM$=INYR$
12120 LOCATE LX,LY:COLOR BYMD:PRINT " 年 月 日";
12130 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INYR$=LMG$
12140 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
12145 YR=VAL(INYR$)
12150 LX=XYMD+7:LY=YYMD:LC=CYMD:LL=2:LM$=INMN$
12160 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INMN$=LMG$
12170 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
12175 MN=VAL(INMN$):IF MN<1 OR MN>12 THEN BEEP:GOTO 12160
12180 LX=XYMD+11:LY=YYMD:LC=CYMD:LL=2:LM$=INDY$
12190 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INDY$=LMG$
12200 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
12205 DY=VAL(INDY$):IF DY<1 OR DY>31 THEN BEEP:GOTO 12190
12210 RETURN
12220 '
12450 *WEEKN :'////////// 週NO.検索
12460 U=0 :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN Output; WK DN
12470 IF YR/4-INT(YR/4)=0 THEN U=1
12480 DATA 31,28,31,30,31,30,31,31,30,31,30,31
12490 DATA 31,29,31,30,31,30,31,31,30,31,30,31
12500 IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
12505 IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
12510 MDN=0:FOR IWEKN=1 TO MN-1:READ DN:MDN=MDN+DN:NEXT IWEKN
12515 READ MNDN:'当月の日数
12520 YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
12530 WK=(YDN#/7-INT(YDN#/7))*7
12540 RETURN
13000 ' 1993.02.12 T.Komura
13010 *LKEYIN :'・・・・・・・・・・・ 1 行全角文字入力サブルーチン
13020 ' v1.1a 入力 = LX,LY : 表示開始座標 出力 = LMG$ : 入力後の文字列
13030 ' LM$ : 初期文字列
13040 ' LC : 表示文字色
13050 ' LL : 最大文字数
13060 '
13070 LCSRCL=2:LLINCL=6
13080 ' CR MR ML INS DEL BS CAN
13085 LMSX=MOUSE(0):LMSY=MOUSE(1):MOUSE 5 :'v1.1a
13090 CC$=CHR$(&H0D,&H1C,&H1D,&H12,&H7F,&H08,&H18)
13100 LMG$=SPACE$(LL):LMGD$=SPACE$(LL)
13110 LA$=INKEY$:IF LA$<>"" THEN 13110
13120 LCSR=0:LCSRX=LCSR:GOSUB *LCSRDX
13130 LOCATE LX,LY:COLOR LC:PRINT LM$ ' ・・・・・・・・・・ 初期文字列記憶
13140 LINE(LX*8,LY*19+16)-((LX+LL)*8,LY*19+17),XOR,LLINCL,BF
13150 LMX$=LEFT$(LM$+SPACE$(LL),LL)
13160 GOSUB *LMREAD
13170 *IN1C:' ・・・・・・・・・・ 1 文字入力
13180 LA$=INKEY$:IF LA$="" THEN 13180
13190 ALA=ASC(LA$):CLA=INSTR(CC$,LA$)
13200 IF CLA=0 THEN 13220
13210 ON CLA GOTO *CR,*MR,*ML,*INS,*DEL,*BS,*CAN
13220 IF KANF=1 THEN *KANJI
13230 IF ALA<&H20 THEN BEEP:GOTO *IN1C
13240 IF ALA>=&H20 AND ALA<&H80 THEN *ANK
13250 IF ALA>=&HA0 AND ALA<&HE0 THEN *ANK
13260 GOTO *KANJI
13270 *ANK :' ・・・・・・・・・・ ANK 文字入力
13280 LOCATE LX+LCSR,LY:COLOR LC:PRINT LA$
13290 MID$(LMX$,LCSR+1,1)=LA$
13300 GOSUB *LCSRINC:GOTO *IN1C
13310 *KANJI :' ・・・・・・・・・・ 漢字文字入力
13320 ON KANF+1 GOTO 13330,13360
13330 KANF=1:KANW$="":KANW$=LA$
13340 IF LCSR+1>=LL THEN KANF=0:BEEP
13350 GOSUB *LCSRD:GOTO *IN1C
13360 KANF=0:KANW$=KANW$+LA$
13370 LOCATE LX+LCSR,LY:COLOR LC:PRINT KANW$
13380 MID$(LMX$,LCSR+1,2)=KANW$
13390 GOSUB *LCSR2INC:GOTO *IN1C
13400 *CR :GOSUB *LMREAD :GOSUB *LCSRDX '////////// End
13410 LINE(LX*8,LY*19+16)-((LX+LL)*8,LY*19+17),XOR,LLINCL,BF
13415 MOUSE 0: MOUSE 1,LMSX,LMSY,1 :'v1.1a
13420 RETURN:'----------------------------------------------------------
13430 *MR :GOSUB *LCSRINC '////////// Right
13440 GOTO *IN1C
13450 *ML :GOSUB *LCSRDEC '////////// Left
13460 GOTO *IN1C
13470 *INS:GOSUB *LMREAD '////////// Insert
13480 IF LMGF$="2" THEN BEEP:GOTO *IN1C
13490 LMX$=LEFT$(LMG$,LCSR)+" "+MID$(LMG$,LCSR+1,LL-1-LCSR)
13500 GOSUB *LMXDSP
13510 GOTO *IN1C
13520 *DEL:GOSUB *LMREAD '////////// Delete
13530 IF LMGF$="2" THEN BEEP:GOTO *IN1C
13540 IF LMGF$="1" THEN 13560
13550 LMX$=LEFT$(LMG$,LCSR)+MID$(LMG$,LCSR+2,LL-1-LCSR)+" ":GOTO 13570
13560 LMX$=LEFT$(LMG$,LCSR)+MID$(LMG$,LCSR+3,LL-2-LCSR)+" "
13570 GOSUB *LMREAD
13580 GOSUB *LMXDSP:GOTO *IN1C
13590 *BS :GOSUB *LMREAD '////////// BackSpace
13600 IF LCSR=0 THEN BEEP:GOTO *IN1C
13610 IF LMGF$="2" THEN BEEP:GOTO *IN1C
13620 GOSUB *LCSRDEC:GOSUB *LMREAD:LMGFX$=LMGF$
13630 LMX$=LEFT$(LMG$,LCSR)+MID$(LMG$,LCSR+2,LL-1-LCSR)+" "
13640 IF LMGFX$="2" THEN LMGFX$="0":GOSUB *LMREAD:GOTO 13620
13650 GOSUB *LMXDSP
13660 GOTO *IN1C
13670 *CAN :LMX$=SPACE$(LL) '////////// Clear
13680 GOSUB *LMXDSP:LCSR=0:GOSUB *LCSRD
13690 GOSUB *LMREAD:GOTO *IN1C
13700 *LMREAD: '////////// Disp Char Read
13710 LMDX=0:LMGD$=""
13720 FOR II=1 TO LL
13730 LMG=ASC(MID$(LMX$,II,1))
13740 IF (LMG>=&H80) AND (LMG<&HA0) THEN LMDK=1 ELSE LMDK=0
13750 IF LMDX=1 THEN LMD$="2":LMDX=0:GOTO 13780
13760 IF LMDK=1 AND LMDX=0 THEN LMD$="1":LMDX=1:GOTO 13780
13770 IF LMDK=0 THEN LMD$="0":LMDX=0
13780 LMGD$=LMGD$+LMD$
13790 NEXT II:LMGF$=MID$(LMGD$,LCSR+1,1):LMG$=LMX$
13800 RETURN
13810 *LCSRD :LXC=8*(LX+LCSR) :LYC=LY*19:GOSUB 13840: '//// Csr Disp
13820 *LCSRDX:LXC=8*(LX+LCSRX):LYC=LY*19:GOSUB 13840: '//// Csr Erace
13830 LCSRX=LCSR:RETURN
13840 LINE(LXC,LYC+0)-(LXC+1,LYC+14),XOR,LCSRCL,BF:RETURN
13850 *LCSRINC :LCSR=LCSR+1:IF LCSR>=LL THEN LCSR=LL-1
13860 GOSUB *LCSRD:RETURN
13870 *LCSR2INC:LCSR=LCSR+2:IF LCSR>=LL THEN LCSR=LL-2
13880 GOSUB *LCSRD:RETURN
13890 *LCSRDEC :LCSR=LCSR-1:IF LCSR<0 THEN LCSR=0
13900 GOSUB *LCSRD:RETURN
13910 *LMXDSP:LOCATE LX,LY:COLOR LC:PRINT LMX$;:RETURN
15000 '
15010 ' SAVE"TCLOCK.sub" :' 組み込み型 アナログ時計 V1.1
15020 ' 1991.05 T.KOMURA
15030 '--------------------------------------------------------------------
15040 '
15220 *時計表示:'///////////////////////////////////
15230 XCLK0=572:YCLK0=22:CLKR=16:PI=3.1415!
15240 TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
15250 TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
15260 TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
15270 THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
15280 GOSUB *短針表示
15290 GOSUB *長針表示
15300 GOSUB *秒針表示
15310 CLOCKINIT=1:DATX$=DATE$
15320 RETURN
15330 '
15340 *短針表示
15350 XHD1=XCLK0+(CLKR-8)*SIN(HRR):XHD2=XCLK0
15360 YHD1=YCLK0-(CLKR-8)*COS(HRR):YHD2=YCLK0
15370 IF CLOCKINIT=0 THEN 15400
15380 IF SCR<>0 THEN 15420
15390 LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
15400 LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
15410 XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
15420 RETURN
15430 *長針表示
15440 XMD1=XCLK0+(CLKR-2)*SIN(MNR):XMD2=XCLK0
15450 YMD1=YCLK0-(CLKR-2)*COS(MNR):YMD2=YCLK0
15460 IF CLOCKINIT=0 THEN 15490
15470 IF SCR<>0 THEN 15510
15480 LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
15490 LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
15500 XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
15510 RETURN
15520 *秒針表示
15530 XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
15540 YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
15550 IF CLOCKINIT=0 THEN 15570
15560 LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
15570 LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
15580 XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
15590 RETURN
16000 '
19000 '
19010 '//////////////////////////////////////////////////////////////
19020 *ERROR:' エラー処理サブルーチン V1.10 1990.11.08 T.Komura
19030 '
19040 '
19050 IF ERR=53 THEN *IOERR
19060 IF ERR=63 THEN *FILNOF
19070 IF ERR=67 THEN *DSKFUL
19080 IF ERR=71 THEN *DSKUNF
19090 IF ERR=72 THEN *DSKOFF
19100 IF ERR=73 THEN *DSKWP
19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
19120 GOSUB *ERMSG
19130 STOP
19140 '////////// エラー処理
19150 *IOERR
19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
19170 GOSUB *ERMSG:RESUME
19180 *DSKFUL
19190 ERMES$="ディスクが満杯です。 交換後、"
19200 GOSUB *ERMSG:RESUME
19210 *DSKUNF
19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
19230 GOSUB *ERMSG:RESUME
19240 *DSKOFF
19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
19260 GOSUB *ERMSG:RESUME
19270 *DSKWP
19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
19290 GOSUB *ERMSG:RESUME
19300 *FILNOF
19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
19320 GOSUB *ERMSG:RESUME
19330 '
19340 *ERMSG:'////////// エラーメッセージ
19350 LOCATE 2,23:COLOR 2,0
19355 PRINT SPACE$(77);
19359 LOCATE 2,23:COLOR 2,0
19360 PRINT ERMES$;"[実行]キーを押してね!";
19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
19390 IF ERRA$<>CHR$(&H0D) THEN 19380
19400 LOCATE 3,23:COLOR 6,0
19410 PRINT "エラー処理を終わります。";SPACE$(52);
19420 RETURN
19430 '
19440 '
19450 '
20000 '------------------------------------------------------------------
20010 ' CUSTOM SUB ROUTINE FOR "DOQSO.BAS"
20020 '------------------------------------------------------------------
20100 *表紙表示
20105 LOAD@ TIFDRV$+"\HK4IN.TIF",(0,0)
20110 FOR II=1 TO 15
20115 X=100:Y=134+19*(II-1)
20120 SYMBOL(X,Y),CFI$(II),.8!,.8!,0,,,,4
20125 NEXT II
20130 'GOSUB *初期表示ポイント検出
20145 INTERVAL ON
20160 RETURN
20190 '
20200 *本日の日付
20210 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
20212 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
20214 TY$=RIGHT$(STR$(TY),4)
20220 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
20230 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
20250 YR=TY:MN=TM:DY=TD:GOSUB *週検索:IF CW=0 THEN CW=7
20260 TYMD$=TY$+"年"+TM$+"月"+TD$+"日"+" 曜日"
20265 COLOR 7,0:LOCATE 46,1:PRINT TYMD$
20270 COLOR CW:LOCATE 61,1:PRINT WKM$
20280 RETURN
20290 '
20300 *日付表示
20310 YR$=RIGHT$(STR$(YR),4)
20315 NBN=4:NBA$=YR$:GOSUB *数字漢字変換:KYR$=NBK$
20320 MN$=RIGHT$(STR$(100+MN),2)
20325 NBN=2:NBA$=MN$:GOSUB *数字漢字変換:KMN$=NBK$
20330 DY$=RIGHT$(STR$(100+DY),2)
20335 NBN=2:NBA$=DY$:GOSUB *数字漢字変換:KDY$=NBK$
20340 GOSUB *週検索:IF CW=0 THEN CW=7
20350 DYMD$=KYR$+" "+KMN$+" "+KDY$+" "
20360 COLOR 6,0:LOCATE 12,3:PRINT DYMD$;
20370 COLOR CW,0:PRINT WKM$;
20375 IYM$=YR$+MN$
20380 RETURN
20390 '
20400 *指定日データ表示
20410 GOSUB *HKISRC
20420 IF FIDX=0 THEN 20450
20430 GOSUB *データ表示
20440 RETURN
20450 GOSUB *新規ファイル作成
20480 RETURN
20490 '
20495 '
20500 *データ表示
20510 RDY=DY:GOSUB *HKDGET
20520 LOCATE 12,5:COLOR 7:PRINT DEV$
20530 FOR II=1 TO 15
20532 LOCATE 20,II+6:COLOR 0:PRINT DYN$(II);" ";DRM$(II);
20534 NEXT II
20540 IF MID$(IMAK$,DY,1)<>" " THEN 20550
20545 LOCATE 76,5:COLOR 4:PRINT " ":GOTO *合計表示
20550 LOCATE 76,5:COLOR 4:PRINT "★":GOTO *合計表示
20555 *合計表示
20560 LOCATE 68, 8:COLOR 1:PRINT DIYN$
20562 LOCATE 68,12:COLOR 0:PRINT DBYN$
20564 LOCATE 68,20:COLOR 2:PRINT DOYN$
20580 RETURN
20590 '
20600 *年月日変更
20601 GOSUB *WEEKN
20602 DY=DY+DDEF
20604 IF DY<1 THEN MN=MN-1:GOSUB *WEEKN:DY=MNDN
20606 IF DY>MNDN THEN MN=MN+1:DY=1
20610 MN=MN+MDEF
20620 IF MN<1 THEN MN=12+MN:YR=YR-1
20630 IF MN>12 THEN MN=MN-12:YR=YR+1
20640 YR=YR+YDEF
20650 IF YR<0 THEN YR=10000+YR
20660 IF YR>9999 THEN YR=YR-10000
20665 GOSUB *WEEKN:IF DY>MNDN THEN DY=MNDN
20668 DY$=RIGHT$(STR$(100+DY),2)
20670 MN$=RIGHT$(STR$(100+MN),2)
20680 YR$=RIGHT$(STR$(10000+YR),4)
20690 RETURN
20695 '
20700 *新規ファイル作成
20710 FOR II=5 TO 22:LOCATE 12,II:PRINT SPACE$(66):NEXT II
20720 IF (YR*12+MN)=(YRM*12+MNM+1) THEN 20750:'----次月チェック
20730 MESN=7:GOSUB *MESDSP:MESN=25:GOSUB *SNDMSG
20740 FOR I=1 TO 5000:NEXT I:RETURN
20750 MESN=3:GOSUB *MESDSP:'-----------------------確認
20760 CMES$="["+YR$+"年"+MN$+"月]ファイル新規作成"
20770 GOSUB *確認
20780 ON SWNO GOTO 20800,20870
20800 MESN=5:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
20810 IYM$=YR$+MN$:IMAK$=SPACE$(32):'--------------IDX追加
20820 RI=IR+1:GOSUB *HKIPUT
20830 DEV$=SPACE$(64):DDM$=SPACE$(32):'------------ファイル作成
20835 FOR JJ=1 TO 16:DYN$(JJ)=SPACE$(10):DRM$(JJ)=SPACE$(32):NEXT JJ
20840 FOR RDY=1 TO 31
20845 LOCATE 70,23:COLOR 4:PRINT RIGHT$(STR$(RDY),2);" / 31";
20850 GOSUB *HKDPUT
20860 NEXT RDY:MESN=14:GOSUB *SNDMSG
20870 RETURN
20880 '
21000 *出来事入力
21010 MESN=10:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
21020 LX=12:LY=5:LC=6:LL=64:LM$=DEV$
21040 LOCATE LX,LY:COLOR LC:PRINT LM$:GOSUB *LKEYIN
21050 DEV$=LMG$
21060 LOCATE LX,LY:COLOR 7:PRINT DEV$
21070 RETURN
21080 '
21100 *金額・内容入力
21110 MESN=11:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
21120 LX=20:LY=6+IPNO:LC=1:LL=10:LM$=DYN$(IPNO)
21140 LOCATE LX,LY:COLOR LC:PRINT LM$:GOSUB *LKEYIN
21150 DYN$=LMG$
21155 DYN$(IPNO)=RIGHT$(SPACE$(10)+STR$(VAL(DYN$)),10)
21160 LOCATE LX,LY:COLOR 0:PRINT DYN$(IPNO)
21170 '
21210 MESN=12:GOSUB *MESDSP
21220 LX=32:LY=6+IPNO:LC=1:LL=32:LM$=DRM$(IPNO)
21240 LOCATE LX,LY:COLOR LC:PRINT LM$:GOSUB *LKEYIN
21250 DRM$(IPNO)=LMG$
21260 LOCATE LX,LY:COLOR 0:PRINT DRM$(IPNO)
21280 '
21300 GOSUB *HKDCAL
21310 GOSUB *合計表示
21320 RETURN
21330 '
21900 '
22000 *家計簿データ保存
22010 G=1:B=8:BST(G,B)=1:GOSUB *ボタンON_OFF表示
22020 MESN=13:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
22030 RDY=DY:GOSUB *HKDPUT
22040 MID$(IMAK$,DY,1)="*"
22045 MID$(IMAK$,32,1)=" "
22050 GOSUB *HKIPUT
22060 IPF=0
22065 G=1:B=8:BST(G,B)=0:GOSUB *ボタンON_OFF表示
22070 RETURN
22080 '
22900 '------------------------------------------------------------------
30130 *ボタン座標読み取り
30140 RESTORE *ボタン座標:READ SWGN
30150 FOR G=1 TO SWGN
30160 READ SWN(G),SMX(G),SMY(G),SMW(G)
30170 FOR B=1 TO SWN(G)
30180 READ XB1(G,B),XB2(G,B),YB1(G,B),YB2(G,B)
30190 NEXT B
30200 NEXT G
30210 RETURN
30220 '
30230 *ボタンON_OFF表示
30240 IF BST(G,B)=1 THEN BSC=7:BSB=0:BSA=2:GOTO 30260
30250 BSC=0:BSB=7:BSA=5
30260 CONNECT(XB1(G,B ),YB2(G,B) )-(XB2(G,B) ,YB2(G,B) )-(XB2(G,B ),YB1(G,B) ),BSC,PSET
30270 CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB2(G,B)-1,YB2(G,B)-1)-(XB2(G,B)-1,YB1(G,B)+1),BSC,PSET
30280 CONNECT(XB1(G,B) ,YB2(G,B) )-(XB1(G,B) ,YB1(G,B) )-(XB2(G,B) ,YB1(G,B) ),BSB,PSET
30290 CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB1(G,B)+1,YB1(G,B)+1)-(XB2(G,B)-1,YB1(G,B)+1),BSB,PSET
30300 LINE(XB1(G,B)+4,YB1(G,B)+4)-(XB1(G,B)+6,YB1(G,B)+5),PSET,BSA,BF
30305 IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT 16
30310 RETURN
30320 '
30330 *マウスボタン選択
30340 SWERC=0
30350 IF MOUSE(2,0)=0 THEN 30350
30360 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):SWNO=0
30370 FOR IMS=1 TO SWN(G)
30380 IF (X_M>XB1(G,IMS) AND X_M<XB2(G,IMS)) ELSE 30410
30390 IF (Y_M>YB1(G,IMS) AND Y_M<YB2(G,IMS)) ELSE 30410
30400 SWNO=IMS:IMS=SWN(G)+1
30410 NEXT IMS:FOR IM=1 TO 500:NEXT IM
30420 IF SWNO=0 AND SWPASS=1 THEN GOSUB *シート選択判定:GOTO 30460
30430 IF SWNO=0 AND SWERC>5 THEN MESN=12:GOSUB *SNDMSG :GOTO 30350
30440 IF SWNO=0 THEN SMSGPLAY 3:SWERC=SWERC+1:GOTO 30350
30460 SWPASS=0
30470 RETURN
30480 '
30500 *数字漢字変換
30505 NBK$=""
30510 FOR INBK=1 TO NBN
30512 NBAX$=MID$(NBA$,INBK,1)
30514 IF NBAX$=" " THEN NBK$=NBK$+" ":GOTO 30530
30520 NBK$=NBK$+KNJ$(&H2330+VAL(NBAX$))
30530 NEXT INBK
30540 RETURN
30580 '
30760 '
30820 *シート選択判定
30880 RETURN
30890 '
31000 *FADEOUT:CLS 1:CONSOLE 0,24,0
31010 FOR II=0 TO 15
31020 PALETTE II,[16*II,16*II,16*II]
31030 NEXT II
31040 FOR II=0 TO 255 STEP 5
31050 FOR JJ=0 TO 15:KK=16*JJ+II*(255-16*JJ)/255
31054 PALETTE JJ,[KK,KK,KK]
31056 NEXT JJ
31060 NEXT II
31070 RETURN
31080 '
31200 *確認
31205 LOCATE 27,3:PRINT SPACE$(52)
31210 GET@A(214,50)-(630,79),CUTN#
31220 LOAD@ TIFDRV$+"\CAUTION.TIF",(214,50)
31225 PLAY "o6l4ce"
31230 FOR II=1 TO 4
31232 LOCATE 40,3:COLOR 6:PRINT CMES$;:'28chr
31234 WAIT SWAIT/10
31236 LOCATE 40,3:PRINT SPACE$(28)
31237 WAIT SWAIT/10
31238 NEXT II
31239 LOCATE 40,3:COLOR 7:PRINT CMES$;:MESN=19:GOSUB *SNDMSG:'28chr
31240 G=2:GOSUB *マウスボタン選択
31245 G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
31250 LOCATE 40,3:PRINT SPACE$(28)
31260 WAIT SWAIT/5
31270 PUT@A(214,50)-(630,79),CUTN#
31272 GOSUB *日付表示
31275 RETURN
31280 '
35000 *HKIOPN:'---------- インデックスファイルオープン
35005 DRV$=LEFT$(DATDRV$,2)
35010 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35020
35015 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
35020 FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
35030 OPEN "R",#2,FLN$
35040 FIELD #2,6 AS I$(1),32 AS I$(2)
35050 IR=LOF(2)
35060 RETURN
35070 '
35100 *HKDOPN:'---------- 家計簿データファイルオープン
35105 DRV$=LEFT$(DATDRV$,2)
35110 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35120
35115 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
35120 FLN$=DRV$+"(768)"+PATH$+"\HL"+IYM$+".DAT"
35130 OPEN "R",#1,FLN$
35140 FIELD #1,64 AS D$(1),10*16 AS D$(2),32*4 AS D$(3),32*4 AS D$(4),32*4 AS D$(5),32*4 AS D$(6),32 AS D$(7)
35150 AR=LOF(1)
35160 RETURN
35170 '
36000 *HKISRC:'---------- インデックスファイル検索
36005 FIDX=0
36010 GOSUB *HKIOPN
36020 FOR R=1 TO IR
36030 GET #2,R
36040 IF IYM$<>I$(1) THEN 36060
36050 IYM$=I$(1):IMAK$=I$(2):RI=R:R=IR+1:FIDX=1
36060 NEXT R
36062 GET #2,IR
36064 YRM=VAL(LEFT$(I$(1),4)):MNM=VAL(RIGHT$(I$(1),2))
36070 CLOSE #2
36080 RETURN
36090 '
36100 *HKIPUT:'---------- インデックスファイル書き込み
36110 GOSUB *HKIOPN
36120 LSET I$(1)=IYM$
36130 LSET I$(2)=IMAK$
36140 PUT #2,RI
36150 CLOSE #2
36160 RETURN
36170 '
36200 *HKDGET:'---------- 家計簿データ読み込み
36210 GOSUB *HKDOPN
36220 R=RDY
36230 GET #1,R
36240 DEV$=D$(1)
36250 FOR II=1 TO 16:DYN$(II )=MID$(D$(2),(II-1)*10+1,10):NEXT II
36252 FOR II=1 TO 4:DRM$(II+ 0)=MID$(D$(3),(II-1)*32+1,32):NEXT II
36253 FOR II=1 TO 4:DRM$(II+ 4)=MID$(D$(4),(II-1)*32+1,32):NEXT II
36254 FOR II=1 TO 4:DRM$(II+ 8)=MID$(D$(5),(II-1)*32+1,32):NEXT II
36255 FOR II=1 TO 4:DRM$(II+12)=MID$(D$(6),(II-1)*32+1,32):NEXT II
36256 DDM$=D$(7)
36260 GOSUB *HKDCAL
36280 CLOSE #1
36290 RETURN
36295 '
36300 *HKDPUT:'---------- 家計簿データ書き込み
36310 GOSUB *HKDOPN
36320 R=RDY
36330 LSET D$(1)=DEV$
36340 DX$="":FOR II=1 TO 16:DX$=DX$+DYN$(II ):NEXT II:LSET D$(2)=DX$
36342 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 0):NEXT II:LSET D$(3)=DX$
36343 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 4):NEXT II:LSET D$(4)=DX$
36344 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 8):NEXT II:LSET D$(5)=DX$
36345 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+12):NEXT II:LSET D$(6)=DX$
36346 LSET D$(7)=DDM$
36350 PUT #1,R
36360 CLOSE #1
36370 RETURN
36380 '
36400 *HKDCAL:'---------- 家計簿金額計算
36410 FOR II=1 TO 16:DYN(II)=VAL(DYN$(II)):NEXT II
36420 DIYN=0:FOR II=1 TO 3 :DIYN=DIYN+DYN(II):NEXT II
36430 DIYN$=RIGHT$(SPACE$(8)+STR$(DIYN),8)
36440 DBYN=0:FOR II=4 TO 7 :DBYN=DBYN+DYN(II):NEXT II
36450 DBYN$=RIGHT$(SPACE$(8)+STR$(DBYN),8)
36460 DOYN=0:FOR II=4 TO 15:DOYN=DOYN+DYN(II):NEXT II
36480 DOYN$=RIGHT$(SPACE$(8)+STR$(DOYN),8)
36490 RETURN
37190 '
37290 '
39000 *CONFIGファイルチェック' V10 1993.02.07
39010 OPEN "R",#1,"(1)HK.CFG"
39020 FIELD #1,1 AS D$
39030 IF LOF(1)=0 THEN *CFGFE1
39035 CLOSE
39040 OPEN "I",#1,"HK.CFG"
39050 GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$
39052 GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$
39054 GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$
39056 TIFDRV$=PRGDRV$+"\TIFF" :'-- TIFDRV$
39058 GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$
39060 GOSUB *CFGREAD :'-- SNDMF
39062 IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
39064 SNDMF=VAL(RIGHT$(CFG$,1))
39066 GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$
39068 GOSUB *CFGREAD :'-- SWAIT
39070 IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
39072 SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
39080 FOR II=1 TO 15
39082 GOSUB *CFGREAD:CFI$(II)=CFG$
39084 NEXT II
39140 CLOSE
39150 RETURN
39200 *CFGFE1
39220 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルが見当たりません。 家計簿を終了します。"
39230 CLOSE:WAIT 100:SYSTEM
39300 *CFGFE2
39320 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの内容に誤りがあります。 家計簿を終了します。"
39330 CLOSE:WAIT 100:SYSTEM
39400 *CFGFE3
39420 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
39430 CLOSE:WAIT 100:SYSTEM
39500 *CFGREAD
39510 IF EOF(1)<>0 THEN *CFGFE3
39520 LINE INPUT #1,CFG$
39530 IF LEFT$(CFG$,1)="/" THEN 39510
39540 RETURN
39990 '
40000 *ボタン座標:'-------------------------------------------------------
40010 DATA 2 'SWGN スイッチグループ数
40090 '/////////////////////////////
40100 '-------------------- スイッチグループ[1]
40110 ' SWN(G),SMX,SMY,SMW
40120 DATA 25 , 1, 1, 0
40130 ' XB1 XB2 YB1 YB2 SWM$ SMC SWNO.
40140 DATA 163,182, 56, 73'," ▲ ",7 01
40150 DATA 183,202, 56, 73'," ▼ ",7 02
40160 DATA 251,270, 56, 73'," ▲ ",7 03
40170 DATA 271,290, 56, 73'," ▼ ",7 04
40180 DATA 364,383, 56, 73'," ▲ ",7 05
40190 DATA 384,403, 56, 73'," ▼ ",7 06
40200 DATA 515,568, 56, 79',"取 消",1 08
40210 DATA 569,624, 56, 79',"保 存",1 09
40220 DATA 592,630, 3, 41'," END ",1 07
40230 DATA 14, 88, 94,116',"出来事",0 10
40240 DATA 90,155,131,149',"給 与",1 11
40250 DATA 90,155,150,168',"臨 時",1 12
40260 DATA 90,155,169,187',"他収入",1 13
40270 DATA 90,155,188,206',"食 費",0 14
40280 DATA 90,155,207,225',"生活費",0 15
40290 DATA 90,155,226,244',"洗濯代",0 16
40300 DATA 90,155,245,263',"光熱費",0 17
40310 DATA 90,155,264,282',"被服費",0 18
40320 DATA 90,155,283,301',"交際費",0 19
40330 DATA 90,155,302,320',"娯楽費",0 20
40340 DATA 90,155,321,339',"酒 代",0 21
40350 DATA 90,155,340,358',"車維持",0 22
40360 DATA 90,155,359,377',"教育費",0 23
40370 DATA 90,155,378,396',"雑 費",0 24
40380 DATA 90,155,397,415',"他支出",0 25
40500 '-------------------- スイッチグループ[2]
40510 ' SWN(G),SMX,SMY,SMW
40520 DATA 2 ,0.8,0.8, 0
40530 ' XB1 XB2 YB1 YB2 SWM$ SMC
40540 DATA 552,583, 56, 73'," OK ",1 01
40550 DATA 584,615, 56, 73'," NG ",1 02
60000 '
60010 ' 座標確認 DEBUG ROUTINE
60020 '
60030 MOUSE 0:MOUSE 1,0,0,1
60040 IF MOUSE(2,1)<>0 THEN STOP
60050 IF MOUSE(2,0)=0 THEN 60050
60060 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
60070 LOCATE 2,24:COLOR 7:PRINT "X=";X_M,"Y=";Y_M,"LX=";LX,"LY=";LY;
60080 GOTO 60040
61000 '